1. Field of the Invention
The present invention relates to the computer field, and more specifically, to a method and apparatus for determining correlation between input and output messages of a system under test.
2. Description of Related Art
The Internet of Things (IOT) has been considered an important component of new generation information technologies, and is defined as a network connecting things to the internet through information sensing devices, for example, Radio Frequency Identification (RFID), infrared sensors, Global Positioning System (GPS), laser scanners, etc., according to agreed protocols for information exchanging and communication, so as to realize intelligent identification, locating, tracking, monitoring, and management of things.
In distributed networks, such as the IOT, functional test is an important stage in system development and malfunction detection. For example, in a system of collecting temperature information for alert, temperature sensors distributed at different locations sense temperature and send collected temperature information to a certain node, which determines whether to send alert information for alert according to the received temperature information. In such an IOT, whether the designed node meets design requirements, or a certain output event, is dictated by which input event or events at the node can be determined by the functional test.
When a system (it can be a node or a portion thereof in a network, or a part formed by multiple nodes in the network) has been designed, performing a functional test on the system is required to determine whether the system can meet design requirements. For a faulted system it is possible to perform functional test on the system to locate malfunction. Because a system may receive a large number of input messages and send a large number of output messages, conveniently determining correlation between input and output messages to facilitate functional test has become a major demand.
Recently, several methods for testing correlation between input and output messages in a network have emerged. In these methods, correlation between input and output messages is determined through semantic analysis, that is, the specific meaning of data contained in input and output messages needs to be parsed for correlation analysis. In doing so, either a great deal of human effort is involved, or data modeling through a huge amount of statistics is necessary, leading to high complexity.
Currently, there are several code analysis tools. For example, the Wisconsi tool may find out associated variables and/or functions from codes through static code analysis without executing the codes. The JSlice tool relies on special Java Virtual Machine (JVM) which records code execution paths through executing codes and finds out associated variables and/or functions following the code execution paths. The SPYDER tool records code dependency trees based on probes used for monitoring which are embedded into executable machine codes at code compiling time, and thereby finds out associated variables and/or functions according to the code dependency trees. The probes cannot be changed during code execution. The above tools are either inaccurate or rigid or intruding for the codes of systems under tests. They are not generally applicable in determining correlation between input and output messages conveniently and accurately.